package com.ihrm.common.controller;

import com.ihrm.domain.system.response.ProfileResult;
import io.jsonwebtoken.Claims;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.Subject;
import org.springframework.web.bind.annotation.ModelAttribute;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BaseController {
    protected HttpServletRequest request;
    protected HttpServletResponse response;
    protected String companyId;
    private String userId;
    protected String companyName;
    protected Claims claims;
    
    @ModelAttribute
    public void setResAndReq(HttpServletRequest request,HttpServletResponse response){
        this.request=request;
        this.response=response;
    
        /**
         * 获取session中的安全数据
         */
        Subject subject = SecurityUtils.getSubject();
        
        /**
         * 1.subject获取所有的安全数据集合
         */
        PrincipalCollection principals = subject.getPrincipals();
        if(principals!=null&& !principals.isEmpty()){
            /**
             * 2.获取安全数据
             */
            ProfileResult result = (ProfileResult) principals.getPrimaryPrincipal();
            this.companyId = result.getCompanyId();
            this.companyName=result.getCompany();
            this.userId=result.getUserId();
        }
    }
}
